package com.ruoyi.business.service;

import java.util.List;
import com.ruoyi.business.domain.AuthBindingInfo;
import com.ruoyi.business.domain.vo.AuthBindingInfoReviewVO;
import com.ruoyi.business.domain.vo.FamilyMemberVO;

/**
 * 业主认证Service接口
 * 
 * @author asher
 * @date 2021-11-11
 */
public interface IAuthBindingInfoService 
{
    /**
     * 查询业主认证
     * 
     * @param bindingId 业主认证主键
     * @return 业主认证
     */
    public AuthBindingInfo selectAuthBindingInfoByBindingId(Long bindingId);

    /**
     * 查询业主认证列表
     * 
     * @param authBindingInfo 业主认证
     * @return 业主认证集合
     */
    public List<AuthBindingInfo> selectAuthBindingInfoList(AuthBindingInfo authBindingInfo);

    /**
     * 新增业主认证
     * 
     * @param authBindingInfo 业主认证
     * @return 结果
     */
    public int insertAuthBindingInfo(AuthBindingInfo authBindingInfo);

    /**
     * 修改业主认证
     * 
     * @param authBindingInfo 业主认证
     * @return 结果
     */
    public int updateAuthBindingInfo(AuthBindingInfo authBindingInfo);

    /**
     * 批量删除业主认证
     * 
     * @param bindingIds 需要删除的业主认证主键集合
     * @return 结果
     */
    public int deleteAuthBindingInfoByBindingIds(Long[] bindingIds);

    /**
     * 删除业主认证信息
     * 
     * @param bindingId 业主认证主键
     * @return 结果
     */
    public int deleteAuthBindingInfoByBindingId(Long bindingId);

    /**
     * 申请业主认证
     * @param authBindingInfo
     * @return
     */
    int applyAuthBindingInfo(AuthBindingInfo authBindingInfo);

    /**
     * 审核业主认证信息
     * @param authBindingInfoReviewVO
     * @return
     */
    int reviewAuthBindingInfo(AuthBindingInfoReviewVO authBindingInfoReviewVO);

    List<AuthBindingInfo> selectAuthBindingInfoByWxUserId(Long wxUserId);

    List<AuthBindingInfo> selectAuthBindingInfoByWxUserIdAndStatus(Long wxUserId, String status);

    List<FamilyMemberVO> getFamilyMembersByHouseId(Long houseId);

    AuthBindingInfo selectAuthBindingInfoByWxUserIdAndBindingVillageId(Long wxUserId, Long bindingVillageId);

    public List<AuthBindingInfo> selectExistAuthBindingInfoByWxUserIdAndVillageId(Long wxUserId, Long villageId);

}
